home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / gfx / 3d / irit50src.lha / irit5 / scripts / prisa.irt < prev    next >
Encoding:
Text File  |  1994-12-11  |  6.6 KB  |  189 lines

  1. #
  2. # Some tests for the PRISA (planar layout) code.
  3. #
  4.  
  5. save_res = resolution;
  6. save_mat = view_mat;
  7. SampPerCrv = 64;
  8. viewobj(view_mat);
  9.  
  10. ViewState("LessIso");
  11. ViewState("LessIso");
  12.  
  13. #############################################################################
  14. #
  15. # Layout (prisa) of a sphere - several resolutions/directions.
  16. #
  17. view_mat3d = rotx(-90) * roty(135) * rotx(-30) * scale(vector(0.5, 0.5, 0.5));
  18. view_mat2d = scale( vector( 0.15,  0.15, 0.15 ) ) *
  19.          trans( vector( 0.0, -0.8, 0.0 ) );
  20.  
  21. s45 = sin(pi/4);
  22.  
  23. halfcirc = cbspline( 3,
  24.              list( ctlpt( P3, 1.0,  0.0, 0.0,  1.0 ),
  25.                    ctlpt( P3, s45, -s45, 0.0,  s45 ),
  26.                    ctlpt( P3, 1.0, -1.0, 0.0,  0.0 ),
  27.                    ctlpt( P3, s45, -s45, 0.0, -s45 ),
  28.                ctlpt( P3, 1.0,  0.0, 0.0, -1.0 ) ),
  29.              list( 0, 0, 0, 1, 1, 2, 2, 2 ) );
  30. sp = surfrev( halfcirc );
  31. color( sp, yellow );
  32.  
  33. interact( list( view_mat3d, sp ) );
  34.  
  35. sp_prisa = prisa( sp, SampPerCrv, -0.6, COL, vector( 0, 0.1, 0.0 ) );
  36. color( sp_prisa, yellow );
  37. interact( list( view_mat3d, sp_prisa ) );
  38.  
  39. sp_prisa = prisa( sp, SampPerCrv, 0.6, COL, vector( 0, 0.1, 0.0 ) );
  40. interact( list( view_mat2d, sp_prisa ) );
  41.  
  42. sp_prisa = prisa( sp, SampPerCrv, -0.3, COL, vector( 0, 0.1, 0.0 ) );
  43. color( sp_prisa, yellow );
  44. interact( list( view_mat3d, sp_prisa ) );
  45.  
  46. sp_prisa = prisa( sp, SampPerCrv, 0.3, COL, vector( 0, 0.1, 0.0 ) );
  47. interact( list( view_mat2d, sp_prisa ) );
  48.  
  49. sp_prisa = prisa( sp, SampPerCrv, -0.1, COL, vector( 0, 0.1, 0.0 ) );
  50. color( sp_prisa, yellow );
  51. interact( list( view_mat3d, sp_prisa ) );
  52.  
  53. sp_prisa = prisa( sp, SampPerCrv, 0.1, COL, vector( 0, 0.1, 0.0 ) );
  54. interact( list( view_mat2d, sp_prisa ) );
  55.  
  56. sp_prisa = prisa( sp, SampPerCrv, -0.3, ROW, vector( 0, 0.1, 0.0 ) );
  57. color( sp_prisa, yellow );
  58. interact( list( view_mat3d, sp_prisa ) );
  59.  
  60. sp_prisa = prisa( sp, SampPerCrv, 0.3, ROW, vector( 0, 0.1, 0.0 ) );
  61. interact( list( view_mat2d, sp_prisa ) );
  62.  
  63. #############################################################################
  64. #
  65. # Layout (prisa) of a wine glass.
  66. #
  67. view_mat3d = rotx(-90) * roty(130) * rotx(-35) *
  68.         scale(vector(0.5, 0.5, 0.5)) * trans(vector(0.0, -0.5, 0.0));
  69. view_mat2d = scale( vector( 0.1,  0.1, 0.1 ) ) *
  70.          trans( vector( 0.0, -0.8, 0.0 ) );
  71.  
  72. cross = cbspline( 3,
  73.           list( ctlpt( E3, 0.7, 0.0, 0. ),
  74.             ctlpt( E3, 0.7, 0.0, 0.06 ),
  75.             ctlpt( E3, 0.1, 0.0, 0.1 ),
  76.             ctlpt( E3, 0.1, 0.0, 0.6 ),
  77.             ctlpt( E3, 0.6, 0.0, 0.6 ),
  78.             ctlpt( E3, 0.8, 0.0, 0.8 ),
  79.             ctlpt( E3, 0.8, 0.0, 1.4 ),
  80.             ctlpt( E3, 0.6, 0.0, 1.6 ) ),
  81.           list( KV_OPEN ) );
  82. wglass = surfprev( cross * scale( vector( 1.6, 1.6, 1.6 ) ) );
  83. color( wglass, yellow );
  84.  
  85. interact( list( view_mat3d, wglass ) );
  86.  
  87. wgl_prisa = prisa( wglass, SampPerCrv, -0.1, COL, vector( 0, 0.25, 0.0 ) );
  88. color( wgl_prisa, yellow );
  89. interact( list( view_mat3d, wgl_prisa ) );
  90.  
  91. wgl_prisa = prisa( wglass, SampPerCrv, 0.1, COL, vector( 0, 0.25, 0.0 ) );
  92. interact( list( view_mat2d, wgl_prisa ) );
  93.  
  94. #############################################################################
  95. #
  96. # Layout (prisa) Fuselage of b58 model.
  97. #
  98. c1 = circle( vector( 0.0, 0.0, 0.0 ), 0.01 ) *
  99.      roty( 90 ) *
  100.      trans( vector( -1.0, 0.0, 0.1 ) );
  101. c2 = circle( vector( 0.0, 0.0, 0.0 ), 0.025 ) *
  102.      roty( 90 ) *
  103.      trans( vector( 0.0, 0.0, 0.1 ) );
  104. c3 = circle( vector( 0.0, 0.0, 0.0 ), 0.03 ) *
  105.      roty( 90 ) *
  106.      trans( vector( 0.1, 0.0, 0.1 ) );
  107. c4 = cbspline( 3,
  108.            list( ctlpt( P3, 1,     2.5,   0.0,   -0.1 ),
  109.              ctlpt( P3, 0.707, 1.77,  0.283, -0.071 ),
  110.              ctlpt( P3, 1,     2.5,   0.4,    0.0 ),
  111.              ctlpt( P3, 0.707, 1.77,  0.283,  0.283 ),
  112.              ctlpt( P3, 1,     2.5,   0.0,    0.4 ),
  113.              ctlpt( P3, 0.707, 1.77, -0.283,  0.283 ),
  114.              ctlpt( P3, 1,     2.5,  -0.4,    0.0 ),
  115.              ctlpt( P3, 0.707, 1.77, -0.283, -0.071 ),
  116.              ctlpt( P3, 1,     2.5,   0.0,   -0.1 ) ),
  117.            list( 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4 ) ) *
  118.      trans( vector( -1.5, 0.0, 0.0 ) );
  119. c5 = cbspline( 3,
  120.            list( ctlpt( P3, 1,     2.5,   0.0,   -0.1 ),
  121.              ctlpt( P3, 0.707, 1.77,  0.283, -0.071 ),
  122.              ctlpt( P3, 1,     2.5,   0.4,    0.0 ),
  123.              ctlpt( P3, 0.707, 1.77,  0.283,  0.6 ),
  124.              ctlpt( P3, 1,     2.5,   0.0,    0.5 ),
  125.              ctlpt( P3, 0.707, 1.77, -0.283,  0.6 ),
  126.              ctlpt( P3, 1,     2.5,  -0.4,    0.0 ),
  127.              ctlpt( P3, 0.707, 1.77, -0.283, -0.071 ),
  128.              ctlpt( P3, 1,     2.5,   0.0,   -0.1 ) ),
  129.            list( 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4 ) ) *
  130.      trans( vector( 0.0, 0.0, 0.0 ) );
  131.  
  132. fuseFront = sFromCrvs( list( c1, c2, c3, c4, c5 ), 3 );
  133. color( fuseFront, yellow );
  134.  
  135. c1 = cbspline( 3,
  136.            list( ctlpt( P3, 1,     2.5,   0.0,   -0.1 ),
  137.              ctlpt( P3, 0.707, 1.77,  0.283, -0.071 ),
  138.              ctlpt( P3, 1,     2.5,   0.4,    0.0 ),
  139.              ctlpt( P3, 0.707, 1.77,  0.283,  0.566 ),
  140.              ctlpt( P3, 1,     2.5,   0.0,    0.8 ),
  141.              ctlpt( P3, 0.707, 1.77, -0.283,  0.566 ),
  142.              ctlpt( P3, 1,     2.5,  -0.4,    0.0 ),
  143.              ctlpt( P3, 0.707, 1.77, -0.283, -0.071 ),
  144.              ctlpt( P3, 1,     2.5,   0.0,   -0.1 ) ),
  145.            list( 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4 ) ) *
  146.      trans( vector( 0.0, 0.0, 0.0 ) );
  147. c2 = c1 * scale( vector( 1.05, 1.05, 1.05 ) ) *
  148.           trans( vector( 0.3, 0.0, 0.0 ) );
  149. c3 = c1 * scale( vector( 0.95, 0.95, 0.95 ) ) *
  150.       trans( vector( 1.7, 0.0, -0.02 ) );
  151. c4 = circle( vector( 0.0, 0.0, 0.0 ), 0.35 ) *
  152.      roty( 90 ) *
  153.      trans( vector( 5.0, 0.0, 0.2 ) );
  154. c5 = c4 * trans( vector( 0.2, 0.0, 0.0 ) );
  155. c6 = circle( vector( 0.0, 0.0, 0.0 ), 0.3 ) *
  156.      roty( 90 ) *
  157.      trans( vector( 10.5, 0.0, 0.2 ) );
  158. c7 = circle( vector( 0.0, 0.0, 0.0 ), 0.01 ) *
  159.      roty( 90 ) *
  160.      trans( vector( 11.0, 0.0, 0.25 ) );
  161.  
  162. fuseBack = sFromCrvs( list( c1, c2, c3, c4, c5, c6, c7 ), 3 );
  163. color( fuseBack, yellow );
  164.  
  165. view_mat3d = rotx(-90) * roty(130) * rotx(-35) *
  166.         scale(vector(0.2, 0.2, 0.2)) * trans(vector(0.7, 0.2, 0.0));
  167. view_mat2d = scale( vector( 0.1,  0.1, 0.1 ) ) *
  168.          trans( vector( 0.0, -0.8, 0.0 ) );
  169. interact( list( view_mat3d, fuseBack, fuseFront ) );
  170.  
  171. front_prisa = prisa( fuseFront, SampPerCrv, -0.05, COL, vector( -2.0, 0.2, 0.0 ) );
  172. back_prisa = prisa( fuseBack, SampPerCrv, -0.05, COL, vector( 2.0, 0.2, 0.0 ) );
  173. color(front_prisa, yellow);
  174. color(back_prisa, yellow);
  175. interact( list( view_mat3d, front_prisa, back_prisa ) );
  176.  
  177. front_prisa = prisa( fuseFront, SampPerCrv, 0.05, COL, vector( -2.0, 0.2, 0.0 ) );
  178. back_prisa = prisa( fuseBack, SampPerCrv, 0.05, COL, vector( 2.0, 0.2, 0.0 ) );
  179.  
  180. view_mat2d = scale( vector( 0.15,  0.15, 0.15 ) ) *
  181.          trans( vector( 0.0, -0.8, 0.0 ) );
  182. interact( list( view_mat2d, front_prisa, back_prisa ) );
  183.  
  184. #############################################################################
  185. ViewState("MoreIso");
  186. ViewState("MoreIso");
  187. view_mat = save_mat;
  188. resolution = save_res;
  189.